#pragma once
#include "Common/ComTypeDefine.h"
#include "base/core/singleton.h"
#include "base/core/object_pool.h"
#include "LogicSystemModule.h"
#include "LogicFriendModule.h"
#include "LogicCampModule.h"
#include "LogicRoomModule.h"
#include "LogicUnionModule.h"
//#include "LogicEscortModule.h"

//逻辑服模块管理器
class LogicServerModuleMgr : public ManualSingleton<LogicServerModuleMgr>
{
	friend class ManualSingleton < LogicServerModuleMgr >;
public:
	bool Init();
	void UnInit();
public:
	LogicServerModuleMgr();
	virtual~LogicServerModuleMgr();
private:
	//LogicLoginModule		m_LoginModule;		//登录模块
	LogicSystemModule		m_SystemModule;		//系统模块（服务器专用）
	LogicFriendModule       m_FriendModule;		//好友模块
	LogicCampModule			m_CampModule;		//阵营模块
	LogicRoomModule			m_RoomModoule;		//房间模块
	LogicUnionModule		m_UnionModule;		//工会模块
	//LogicEscortModule		m_EscortModule;		//押镖模块
	//LogicActivityModule		m_ActivityModule;	//活动模块

};

#define g_MakeLogicServerModuleMgr() (LogicServerModuleMgr::Instance())
#define g_GetLogicServerModuleMgr()  (LogicServerModuleMgr::GetInstance())
#define g_DelLogicServerModuleMgr()  (LogicServerModuleMgr::Destroy())